package bytecode.Type;

import bytecode.annotation.TestInfo;

import java.lang.reflect.Array;
import java.lang.reflect.TypeVariable;
import java.util.ArrayList;
import java.util.List;

public class TypeTest extends Object {
    public class Nested {

    }

    public static void main(String[] args) throws Exception {
        // classloader
        System.out.println("classloader :" + TestInfo.class.getClassLoader().getClass().getTypeName());
        // 本类的名称
        System.out.println("classname :" + TestInfo.class.getCanonicalName());
        // 获取内部类
        for (Class c : TypeTest.class.getClasses()) {
            System.out.println("subclass - " + c.getTypeName());
        }
        // 获取父类
        System.out.println("supper classname :" + TestInfo.class.getSuperclass().getTypeName());
        // 获取实现的接口
        System.out.println("interfaces :" + TestInfo.class.getInterfaces()[0].getTypeName());
        // 获取构造器
        System.out.println("constructor :" + TestInfo.class.getConstructors().getClass().getTypeName());
        // 获取签名
        System.out.println("Signer :" + TestInfo.class.getSigners());
        System.out.println("Modifier :" + TestInfo.class.getModifiers());
        // 获取数组的类型
        String[] array = new String[1];
        System.out.println("array type :" +array.getClass().getComponentType());


    }
}
